package model;

/**
 * Reservering klasse waarin aangegeven wordt welk artikel, welke datum
 * gereserveerd is.
 */
public class Reservering {

    private int reserveringID = -1;
    private static int volgendReserveringID = -1;
    private Medewerker medewerker = null;
    private Klant klant = null;
    private Artikel artikel = null;
    private ArtikelFilm artikelFilm = null;

    /**
     * Als medewerker een reservering moet plaatsen voor een klant. Daarom moet
     * klant ook bekend zijn.
     *
     * @param medewerker
     * @param klant
     * @param artikel
     */
    public Reservering(Medewerker medewerker, Klant klant, Artikel artikel) {
        this.medewerker = medewerker;
        this.klant = klant;
        this.artikel = artikel;
        this.incrementVolgendReserveringID();
    }

    /**
     * Als vanuit database een reservering in het systeem geladen moet worden.
     * Als medewerker een reservering moet plaatsen voor een klant. Daarom moet
     * klant ook bekend zijn.
     *
     * @param reserveringID
     * @param medewerker
     * @param klant
     * @param artikel
     */
    public Reservering(int reserveringID, Medewerker medewerker, Klant klant, Artikel artikel) {
        this.reserveringID = reserveringID;
        this.medewerker = medewerker;
        this.klant = klant;
        this.artikel = artikel;
    }

    /**
     * Ophalen van reserveringingen uit de database ten behoeve van het vullen
     * van de GUI
     *
     * @param reserveringID
     * @param klant
     * @param artikelFilm
     */
    public Reservering(int reserveringID, Klant klant, ArtikelFilm artikelFilm) {
        this.reserveringID = reserveringID;
        this.klant = klant;
        this.artikelFilm = artikelFilm;
    }

    public int incrementVolgendReserveringID() {
        Reservering.volgendReserveringID++;
        return Reservering.volgendReserveringID;
    }

    /**
     * @return the artikel
     */
    public ArtikelFilm getArtikelFilm() {
        return artikelFilm;
    }

    /**
     * @return the reserveringID
     */
    public int getReserveringID() {
        return reserveringID;
    }

}
